using ViScript.Core.Exceptions;

namespace ViScript.Core.Argument
{
    public class UnrecognizedArgument : IArgument
    {
        public static readonly UnrecognizedArgument UNRECOGNIZED_ARGUMENT = new UnrecognizedArgument();

        private UnrecognizedArgument()
        {
        }

        public bool IsValid
        {
            get { return false; }
        }

        public object Value
        {
            get { throw new ViScriptSystemException(); }
        }

        public void Accept(IArgumentVisitor visitor)
        {
            visitor.VisitUnrecognizedArgument(this);
        }
    }
}